home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / a / a_funk / packet2.tos / PACKREAD.OMI < prev   
Encoding:
Text File  |  1995-05-01  |  8.5 KB  |  299 lines

  1. bbs> Msg# 79695   To: ATARI @ALLE   From: DJ7YJ   Date: 08Oct90/1320
  2. Subject: BBS-READ-GENER. in OMIKRON-B.
  3. Bulletin ID: 07A001DB0LX
  4. Path: DB0LX
  5. de DJ7YJ @ DB0LX
  6.  
  7. Hallo Atarianer !
  8.  
  9. Nachfolgend ein Listing fuer einen Checklist-Read-Generator, der vor
  10. einiger Zeit schon von DG9SCD fuer "DIEBOX"-Files veroeffentlicht
  11. worden war.
  12. Ich habe mir erlaubt, eine Anpassung an das BBS-Format vorzunehmen, wie es
  13. bei DB0IE (DL5UY) verwendet wird und gleichzeitig in Omikron-Basic
  14. umgeschrieben.
  15.  
  16. Die Checklist-Datei muss als  BBS1.TXT vorliegen.
  17. Die Generierte Read-Datei heisst BBS2.TXT.
  18.  
  19. Die Datum-Eingabe erfolgt hier so:  z.B.:  06.Okt  (ohne Jahreszahl)
  20. Gross- und Kleinschreibung ist moeglich.
  21. Mit RETURN kann auch das Datum als Suchkriterium unterdrueckt werden.
  22.  
  23. So, das wars.
  24.  
  25.  
  26. Listing mit "Block lesen" in den Interpreter laden.
  27. Kompilieren geht auch und mit CUTLIB.PRG kann das Kompilat eigenstaendig
  28. lauffaehig gemacht werden.
  29.  
  30. Falls ein OM die Version fuer "DIEBOX" in Omikron benoetigt, moege er
  31. mir dies unter  DJ7YJ @ DB0LX mitteilen, dann spiele ich diese auch ein.
  32.  
  33. Auch die Atarianer danken dem Programmautor DG9SCD fuer die Idee !
  34.  
  35.  
  36. Text bis hierher vor Verarbeitung loeschen !
  37. -------------------------------------------------------------------------
  38.  
  39.  
  40.  
  41.  '...............................................................
  42.  '(WAMPES)-Read-Generator von OM Juergen, DG9SCD
  43.  'Bulletin-ID: 143003DB0CZ vom 14.3.90 in der Rubrik "SOFTWARE"
  44.  '...............................................................
  45.  '
  46.  'Diese Version wurde ge{ndert f}r DL5UY-BBS-Format
  47.  'Beispiel:
  48.  '30511 $   1262 SAT       DL        DL2AAG     25.Sep NDS-Rundspruch 34/90
  49.  '
  50.  'Kurzbeschreibung:
  51.  '-----------------
  52.  'Dieses Programm ermoeglicht das Auslesen der erstellten CHECK-List-Datei
  53.  'mit der Moeglichkeit bestimmte Auswahlkreterien bereits vorher anzugeben.
  54.  '
  55.  'Beispiel:        Rubrik : ALL
  56.  '                 Call   : DF9DD
  57.  '
  58.  '    Es werden alle Nachrichten von DF9DD zur Auswahl angeboten, die sich in
  59.  '    Rubriken befinden, deren Name mit ALL anfaengt.
  60.  '
  61.  '    Geben Sie nur die Rubrik ein, werden alle Nachrichten zu Auswahl ange-
  62.  '    boten, die sich in Rubriken befinden dir mit dem angegebenen Namen
  63.  '    beginnen.
  64.  '
  65.  '    Wird kein Auswahlkriterium gesetzt, werden alle in der Checklistdatei
  66.  '    befindlichen Saetzen zu Auswahl angeboten.
  67.  '
  68.  '
  69.  'Das Programm laest sich ohne grosse Probleme auch auf andere BASIC-Dialekte
  70.  'umstellen. Auch eine Erweiterung auf andere Mailboxen ist jederzeit moeglich.
  71.  '
  72.  'vy 73,55 de DF9DD @ DB0OVO
  73.  '
  74.  '#############################################################################
  75.  '
  76. -Start:
  77.  CLS
  78.  PRINT "     READ-Generator (c) 08.03.1989  Juergen Mayer Grossheppach JN48QT"
  79.  PRINT "                   Micro-V 0.05             DG9SCD @ DB0LX        P37"
  80.  PRINT "---------------------------------------------------------------------"
  81.  PRINT "     umgeschrieben in Turbo-Basic von Eckhard Schnaare DF9DD 23.04.90"
  82.  PRINT "              zur Verwendung fuer Mailboxen des Types DL5UY-BBS         "
  83.  PRINT "     angepasst an Omikron-Basic von DJ7YJ am 6.10.90 "
  84.  PRINT ""
  85.  PRINT "Name der Eingabedatei     (Check-Liste der Mailbox):                 "
  86.  PRINT "Name der Ausgabedatei     (Readliste fuer  Mailbox):                 "
  87.  PRINT ""
  88.  PRINT ""
  89.  PRINT "Auswahl nach              Rubrik:                (Name der Rubrik)   "
  90.  PRINT "                          Datum :                (TT.Mmm--)          "
  91.  PRINT "                          Call  :                (z.B. DG9SCD)       "
  92.  PRINT ""
  93.  
  94.  'init der Variablen fuer die Eingabefelder
  95.  
  96.  Ipdatei$=""
  97.  Opdatei$=""
  98.  Rubrik$=""
  99.  Adatum$=""
  100.  Acall$=""
  101.  Aalle$="A"
  102.  
  103.  
  104.  'Eingabe der Werte fuer die Erstellung der Readliste
  105.  
  106.  'Eingabedatei: wenn keine Angabe wird BBS1.TXT eingesetzt
  107.  
  108.  LOCATE 8,55
  109.  LINE INPUT Ipdatei$
  110.  Ipdatei$= UPPER$(Ipdatei$)
  111.  IF LEN(Ipdatei$)>0 THEN
  112.    IF INSTR(Ipdatei$,".")=0 THEN
  113.       Ipdatei$=Ipdatei$+".TXT"
  114.    ENDIF
  115.  ELSE IF LEN(Ipdatei$)<=0 THEN Ipdatei$="BBS1.TXT"
  116.  ENDIF
  117.  LOCATE 8,55
  118.  PRINT Ipdatei$
  119.  
  120.  
  121.  'Ausgabedatei: wenn keine Angabe wird BBS2.TXT eingesetzt
  122.  
  123.  LOCATE 9,55
  124.  LINE INPUT Opdatei$
  125.  Opdatei$= UPPER$(Opdatei$)
  126.  IF LEN(Opdatei$)>0 THEN
  127.    IF INSTR(Opdatei$,".")=0 THEN
  128.       Opdatei$=Opdatei$+".TXT"
  129.    ENDIF
  130.  ELSE IF LEN(Opdatei$)<=0 THEN Opdatei$="BBS2.TXT"
  131.  ENDIF
  132.  LOCATE 9,55
  133.  PRINT Opdatei$
  134.  
  135.  
  136.  'Eingabe fuer die Rubrik   -  wird nur ein Teil des Namens angegeben, so
  137.  '                             werden alle Rubriken die mit dem Kuerzel
  138.  '                             fangen angezeigt.
  139.  
  140. -Rubrik:
  141.   LOCATE 12,35
  142.   LINE INPUT Rubrik$
  143.   Rubrik$= UPPER$(Rubrik$)
  144.  
  145. -Adatum:
  146.    LOCATE 13,35
  147.    LINE INPUT Adatum$
  148.    Adatum$= UPPER$(Adatum$)
  149.    LOCATE 23,1
  150.    PRINT SPACE$(79);
  151.    IF LEN(Adatum$)>0 THEN
  152.       IF VAL( MID$(Adatum$,1,2))<1 OR VAL( MID$(Adatum$,1,2))>31 THEN
  153.          LOCATE 23,1: PRINT "Fehler bei der Datumseingabe!";: GOTO Adatum
  154.       ENDIF
  155.       Monat$= UPPER$( MID$(Adatum$,4,3))
  156.       Jahr$="JANFEBMARAPRMAIJUNJULAUGSEPOKTNOVDEZ"
  157.       IF INSTR(Jahr$,Monat$)=0 THEN
  158.          LOCATE 23,1: PRINT "Fehler bei der Datumseingabe!";: GOTO Adatum
  159.       ENDIF
  160.       IF MID$(Adatum$,3,1)<>"." THEN
  161.          LOCATE 23,1: PRINT "Fehler bei der Datumseingabe!";: GOTO Adatum
  162.       ENDIF
  163.   ENDIF
  164.  
  165. -Acall:
  166.   LOCATE 14,35
  167.   LINE INPUT Acall$
  168.   Acall$= UPPER$(Acall$)
  169.  
  170. -Aalle:
  171.  
  172.   IF LEN(Rubrik$)=0 AND LEN(Acall$)=0 AND LEN(Adatum$)=0
  173.  THEN Aalle$="A"
  174.   ELSE
  175.  IF LEN(Rubrik$)<>0 OR LEN(Acall$)<>0 OR LEN(Adatum$)<>0 THEN Aalle$=""
  176.   ENDIF
  177.  
  178. -Okfrage:
  179.  LOCATE 19,1
  180.  PRINT "Alle Eingaben OK?    J/N: "
  181.  LOCATE 19,28
  182.  LINE INPUT Antwort$
  183.  Antwort$= UPPER$(Antwort$)
  184.  IF Antwort$="N" THEN GOTO Start
  185.  IF Antwort$<>"J" THEN GOTO Okfrage
  186.  LOCATE 19,1
  187.  PRINT SPACE$(79);
  188.  
  189.  LOCATE 16,1
  190.  PRINT "======================================================================"
  191.  LOCATE 19,1
  192.  PRINT "======================================================================"
  193.  Zeile1$=""
  194.  Zeile2$=""
  195.  
  196.  '**********************************************************
  197.  '**********  Open der Ein/Ausgabedateien ******************
  198.  
  199.  OPEN "I",1,Ipdatei$
  200.  OPEN "O",2,Opdatei$
  201.  
  202.  '**********************************************************
  203.  '**********  Lesen der Checklistdatei    ******************
  204.  
  205. -Lesen:
  206.  IF EOF(1) THEN GOTO Ende
  207.   INPUT #1,Ein$'Satz lesen
  208.  IF VAL( MID$(Ein$,1,4))<1 THEN GOTO Lesen'ist in spalte 1-4 eine Zahl > 0
  209.  IF LEN(Ein$)<27 THEN GOTO Lesen'ist die laenge des satzes < 27
  210.  
  211. -Auffuellen:'satz auf 80 stellen auffuellen
  212.   IF LEN(Ein$)<80
  213.  THEN Ein$=Ein$+"."
  214.   ELSE
  215.   IF LEN(Ein$)>=80 THEN GOTO Auswahl
  216.   ENDIF
  217.   GOTO Auffuellen
  218.  
  219.  '**********************************************************
  220.  '**********  Pruefen der Checklistdatei  mit Auswahl  ******
  221.  
  222. -Auswahl:
  223.   IF Aalle$="A" THEN GOTO Bearbeiten
  224.  
  225.   IF LEN(Rubrik$)>0 THEN 'pruefen ob Rubrik uebereinstimmt
  226.      IF UPPER$( MID$(Ein$,15, LEN(Rubrik$)+1))<>Rubrik$+" " THEN
  227.         GOTO Lesen
  228.      ENDIF
  229.   ENDIF
  230.  
  231.    IF LEN(Adatum$)>0 THEN 'pruefen ob Datum uebereinstimmt
  232.       IF MID$(( UPPER$(Ein$)),42,6)<>Adatum$ THEN
  233.          GOTO Lesen
  234.       ENDIF
  235.    ENDIF
  236.  
  237.   IF LEN(Acall$)>0 THEN 'pruefen ob call uebereinstimmt
  238.      IF UPPER$( MID$(Ein$,33, LEN(Acall$)))<>Acall$ THEN
  239.         GOTO Lesen
  240.      ENDIF
  241.   ENDIF
  242.  
  243.  
  244. -Bearbeiten:
  245.   LOCATE 20,1
  246.   Zeile$= MID$(Ein$,1,5)+" "+ MID$(Ein$,15,8)+" "+ MID$(Ein$,33,7)+" "+ MID$(( UPPER$(Ein$)),42,6)+" "+ MID$(Ein$,49,30)
  247.   PRINT Zeile$;
  248.   LOCATE 22,1
  249.   PRINT "In READ-Liste uebernehmen <J/N>,  Abbruch <A>";
  250. -Warten:
  251.   Antwort$= UPPER$( INPUT$(1))
  252.   IF Antwort$="J" THEN
  253.      LOCATE 22,1
  254.      PRINT "                             "
  255.      GOTO Ausgabe
  256.   ENDIF
  257.   IF Antwort$="N" THEN GOTO Lesen
  258.   IF Antwort$="A" THEN GOTO Ende
  259.  GOTO Warten
  260.  
  261. -Ende:
  262.   CLOSE
  263.   LOCATE 23,1
  264.   IF Antwort$="A"
  265.   THEN PRINT "***  Programmabbruch  ***";
  266.   ELSE
  267.      IF Antwort$<>"A" THEN PRINT "***  Programmende  ***";
  268.  ENDIF
  269.  
  270.   STOP
  271.  
  272.  
  273. -Ausgabe:
  274.  FOR I%L=15 TO 20
  275.    IF MID$(Ein$,I%L,1)="." THEN MID$ (Ein$,I%L,1)=" "
  276.  
  277.  NEXT I%L
  278.  FOR I%L=1 TO 5
  279.    IF MID$(Ein$,I%L,1)=" " THEN MID$ (Ein$,I%L,1)="0"
  280.  
  281.    IF MID$(Ein$,I%L,1)<"0" AND MID$(Ein$,I%L,1)>"9" THEN GOTO Lesen
  282.  
  283.  NEXT I%L
  284.  Aus$="r "+ MID$(Ein$,1,5)
  285.  PRINT #2,Aus$
  286.  Anzahl%L=Anzahl%L+1
  287.  LOCATE 22,55
  288.  PRINT "Anz.ausgew.Saetze: "; STR$(Anzahl%L)
  289.  Zeile1$=Zeile2$
  290.  Zeile2$=Zeile$
  291.  LOCATE 17,1
  292.  PRINT Zeile1$
  293.  PRINT Zeile2$
  294.  PRINT "======================================================================"
  295.  LOCATE 20,1
  296.  PRINT SPACE$(79);
  297.  GOTO Lesen
  298.  
  299.